JFileChooser


import java.awt.*;
import java.io.File;
import javax.swing.*;
import javax.swing.JFileChooser;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeEvent;
public class MainClass
{
public static void main(String args[])
{
JFileChooser fc=new JFileChooser(".");
fc.setAccessory(new LabelAccessory(fc));
int status=fc.showOpenDialog(null);
if(status==JFileChooser.APPROVE_OPTION)
{
File selectedFile=fc.getSelectedFile();
System.out.println(selectedFile.getParent());
System.out.println(selectedFile.getName());
}
else if(status==JFileChooser.CANCEL_OPTION)
{
System.out.println("JFileChooser.CANCEL_OPTION");

}
}
class LabelAccessory extends JLabel implements PropertyChangeListener
{
public LabelAccessory(JFileChooser chooser)
{
chooser.addPropertyChangeListener(this);
setPreferredSize(new Dimension(100,100));
}
public void propertyChange(PropertyChangeEvent ce)
{
String s=ce.getPropertyName();
if(s.equals(JFileChooser.SELECTED_FILE_CHANGED_PROPERTY))
{
File file=(File)ce.getNewValue();
if(file!=null)
{
setText(file.getName());
}
}
}
}